package main

import (
	"fmt"
	"io"
	"net"
	"strings"
)

func main() {
	//客户端主动发起链接
	conn, err := net.Dial("tcp", "127.0.0.1:8888")

	if err != nil {
		fmt.Println("net.Dial err", err)
		return
	}
	defer conn.Close()

	go func() {
		//向客户端写如数据
		var msg string
		//读取命令行数据
		for {
			fmt.Scan(&msg)
			conn.Write([]byte(msg + "\n"))
		}
	}()

	//循环读服务端用户写过来的数据
	buf := make([]byte, 1024*4)
	// var isAccept string
	for {
		n, err := conn.Read(buf)

		if n == 0 {
			fmt.Println("断开链接...")
			return
		}
		if err != nil && err != io.EOF {
			fmt.Println("conn.read err:", err)
			return
		}
		msg := string(buf[:n])
		go func() {
			//判断是否是私聊消息
			if strings.Contains(msg, "即将有来自[") && strings.Contains(msg, "]用户的私聊") {
				priUserName := strings.Split(strings.Split(msg, "[")[1], "]")[0]
				//开启私聊模式
				priMsg := fmt.Sprintf("to|%s", priUserName)
				conn.Write([]byte(priMsg + "\n"))
			}
		}()
		// 打印
		fmt.Println(msg)
	}
}
